package com.xique.door.mapper;

import com.xique.door.bean.domain.DCard;
import com.xique.door.bean.request.card.DeviceCardSelectListRequest;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface CardAuthorizationMapper {

  /**
   * 设备已授权的卡号
   *
   * @param dCard 卡片
   * @param request 条件对象
   * @return 卡片集合
   */
  List<DCard> selectDCardList(@Param("card") DCard dCard, @Param("request") DeviceCardSelectListRequest request);

  /**
   * 设备已授权的卡号id
   *
   * @param parkId
   * @param deviceId 设备id
   * @return 卡片集合
   */
  List<Long> selectDCardDeviceList(@Param("parkId") Long parkId, @Param("deviceId") Long deviceId);

  /**
   * 设备未授权的卡号
   *
   * @param dCard 卡片
   * @param ids List<DCard>
   * @return 卡片集合
   */
  List<DCard> deviceCardUnAssigned(
      @Param("card") DCard dCard, @Param("ids") List<DCard> ids,@Param("request") DeviceCardSelectListRequest request);
  /**
   * 卡管理
   *
   * @param dCard 卡片
   * @param request 条件对象
   * @return 卡片集合
   */
  List<DCard> selectDCardAdministration(@Param("card") DCard dCard, @Param("request") DeviceCardSelectListRequest request);


  /**
   * @param deviceId
   * @description: 删除设备绑定的卡片
   * @author taojc
   * @date: 2022/8/16
   */
  List<Integer> selectDCardDeviceLists(@Param("parkId") Long parkId, @Param("deviceId") Long deviceId);

  /**
   * @param id
   * @description: 删除设备绑定的卡片
   * @author taojc
   * @date: 2022/8/16
   */
  int deleteDCardAssignedId(Integer id);

  /**
   * @param ids
   * @description: 删除设备绑定的卡片
   * @author taojc
   * @date: 2022/8/16
   */
  int deleteDCardAssignedIds(@Param("ids") List<Integer> ids);
}
